/*
 * @Description: 
 * @version: 
 * @Author: 171
 * @Date: 2022-09-01 18:16:49
 * @LastEditors: 171
 * @LastEditTime: 2022-09-01 18:35:48
 */
import { createVNode, render} from "vue";
import type { VNode, App } from "vue";
import Loading from "./Loading.vue";

export default { // 暴露一个对象，在main.ts中app.use()后会自动执行对象中的install方法
  install(app: App) {
    //createVNode vue提供的底层方法 可以给我们组件创建一个虚拟DOM 也就是Vnode
    const vnode: VNode = createVNode(Loading);
    //render 把我们的Vnode 生成真实DOM 并且挂载到指定节点
    render(vnode, document.body);
    // Vue 提供的全局配置 可以自定义
    app.config.globalProperties.$loading = {
      // isShow: vnode.component?.exposed?.isShow,
      show: () => vnode.component?.exposed?.show(),
      hide: () => vnode.component?.exposed?.hide(),
    };
  },
  // 这是面向全局注册使用的插件，和所有的组件共用
};
